﻿/**
 * @file PyFITKLoadBase.h
 * @brief 载荷基类 为python装饰器接口准备的封装类
 * @author wangning (2185896382@qq.com)
 * @date 2025-02-27
 */
#ifndef _PY_LOAD_BASE_H___
#define _PY_LOAD_BASE_H___

#include <QString>
#include "FITKAcousticsPhysicsAPI.h"

 /**
  * @brief 载荷基类 为python装饰器接口准备的封装类
  * @author wangning (2185896382@qq.com)
  * @date 2025-02-27
  */
namespace Acoustics
{
    class  FITKAcousticsAbstractLoad;

    class FITKAcousticsPhysicsAPI PyFITKLoadBase
    {
    public:
        explicit PyFITKLoadBase(const QString& name);
        explicit PyFITKLoadBase() = default;
        virtual ~PyFITKLoadBase() = default;

        /**
         * @brief  获取名称
         * @author wangning (2185896382@qq.com)
         * @date   2025-02-27
         */
        QString getName();
        /**
         * @brief  设置名称
         * @author wangning (2185896382@qq.com)
         * @date   2025-02-27
         */
        bool setName(const QString& name);

    protected:
        /**
         * @brief  通过ID获取频谱名称
         * @author wangning (2185896382@qq.com)
         * @date   2025-02-27
         */
        int getSpectraIDByName(const QString& name);

    protected:
        /**
        * @brief  载荷对象
        * @author wangning (2185896382@qq.com)
        * @date   2024-12-03
        */
        Acoustics::FITKAcousticsAbstractLoad* _load{};
    };
}

#endif